use crate::entities::{order_detail, orders};
use chrono::NaiveDateTime;
use rust_decimal::Decimal;
use serde::{Deserialize, Serialize};

#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OrderSubmitVO {
    pub id: i64,
    pub order_number: String,
    pub order_amount: Decimal,
    pub order_time: NaiveDateTime,
}

#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OrderVO {
    pub order_dishes: Vec<order_detail::Model>,
    pub order_detail_list: orders::Model,
}

#[derive(Debug, Deserialize, Serialize)]
#[serde(rename_all = "camelCase")]
pub struct OrderStatisticsVO {
    pub to_be_confirmed: Option<u64>,
    pub confirmed: Option<u64>,
    pub delivery_in_progress: Option<u64>,
}
